package com.sxj.corejava.code04_循环结构;

import java.util.Scanner;

/**
 * @author 石小俊
 * @date 2025年01月03日
 * 用户输入一个数字,在控制台通过星号*打印等腰三角形
 * 输入的数字表示图形的行数
 *     *
 *   * * *
 * * * * * *
 */
public class Test12_打印等腰三角形 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入等腰三角形行数:");
        int rows = sc.nextInt();
        // 外层循环控制行数,循环一次,打印一行
        for (int i = 1; i <= rows; i++) {
            // 内层循环控制每一行的内容
            // 由于行中都是先打印空格后打印星号
            // 需要找到每行打印的空格数量以及星号数量的规律
            // 通过内层循环控制打印的数量
            // 每循环一次,打印一个空格或者一个星号
            // 以5行为例
//            行号	空格数		星号数
//            1		4=5-1		1=2*1-1
//            2		3=5-2		3=2*2-1
//            3		2=5-3		5=2*3-1
//            4		1=5-4		7=2*4-1
//            5		0=5-5		9=2*5-1
            // rows行的规律
//            i		rows-i		2*i-1

            // 先打印空格
            for (int j = 1; j <= rows - i; j++) {
                System.out.print("  ");
            }

            // 再打印星号
            for (int j = 1; j <= 2 * i - 1; j++) {
                System.out.print("* ");
            }
            // 内层循环结束之后换行
            System.out.println();
        }
    }
}
